//
//  SXPHomeTableViewCell.swift
//  weibo
//
//  Created by shixinPeng on 16/3/1.
//  Copyright © 2016年 shixinPeng. All rights reserved.
//

import UIKit
import SnapKit
/*
第一种cell:原创微博,无图
第二种cell:原创微博,有图
第三种cell:转发微博,无图
第四种cell:转发微博,有图

思路
第一步;创建初始的cell->原创微博,无图
第二部: 把图片加入,变为有图原创微博
第三步: 把别人的微博插入到原始微博和尾部中间
第四部: 把转发微博放到转发微博下面


*/

class SXPHomeTableViewCell: UITableViewCell {
    
    var constant: Constraint?
    
    //MARK: 自定义控件第一步:重写初始化方法
    //定义cell的模型属性
    var statusesviewModel:SXPstatusesViewModel?{
        didSet{
            
            OriginalView.statusesViewModel = statusesviewModel
            FooterView.footerViewModel = statusesviewModel
            //RetwweetView.retweetViewModel = statusesviewModel
            
            
            
            //先清空约束
            constant?.uninstall()
            
            if statusesviewModel?.statusesModel?.retweeted_status == nil {//没有转发
                //隐藏转发微博
            RetwweetView.hidden = true
                //修改约束
             FooterView.snp_updateConstraints(closure: { (make) -> Void in
                self.constant = make.top.equalTo(OriginalView.snp_bottom).constraint
             })
                
            }else{//有转发微博
                //显示控件
                RetwweetView.hidden = false
                //赋值
                RetwweetView.retweetViewModel = statusesviewModel
                //修改约束
                FooterView.snp_updateConstraints(closure: { (make) -> Void in
                    self.constant = make.top.equalTo(RetwweetView.snp_bottom).constraint
                })
                
            }
            
            
        }
    }
    

   
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        
        setupUI()
        
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    //MARK: 自定义控件第二步:创建一个私有化方法,添加控件和设置约束
    private func setupUI() {
        //添加控件
        contentView.addSubview(OriginalView)
        contentView.addSubview(FooterView)
        contentView.addSubview(RetwweetView)
        //添加约束 原始视图
        OriginalView.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(contentView.snp_top)
            make.left.equalTo(contentView.snp_left)
            //make.bottom.equalTo(contentView.snp_bottom)
            make.right.equalTo(contentView.snp_right)
        }
 
        //添加约束 底部视图
        FooterView.snp_makeConstraints { (make) -> Void in
            make.left.equalTo(contentView.snp_left)
            make.right.equalTo(contentView.snp_right)
            make.bottom.equalTo(contentView.snp_bottom)
            make.height.equalTo(40)
            
            self.constant = make.top.equalTo(RetwweetView.snp_bottom).constraint
        }
        //添加约束 转发视图
        RetwweetView.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(OriginalView.snp_bottom)
            make.left.equalTo(contentView.snp_left)
            make.right.equalTo(contentView.snp_right)
            //make.bottom.equalTo(FooterView.snp_top)
        }
        
        contentView.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(self.snp_top)
            make.left.equalTo(self.snp_left)
            make.right.equalTo(self.snp_right)
            make.bottom.equalTo(FooterView.snp_bottom)
        }
    }
    
    
    //MARK: 自定义控件第三步:懒加载
    private lazy var OriginalView:SXPOriginal = SXPOriginal()
    
    private lazy var FooterView:SXPFooterView = SXPFooterView()
    
    private lazy var RetwweetView:SXPretweetView = SXPretweetView()

}
